1. Field of the Invention
The invention relates to digital communication networks and systems and, more particularly to techniques for controlling the operation of an upstream Internet Group Management Protocol (IGMP) router or proxy, such as a digital subscriber line access multiplexer (DSLAM) that delivers multicast traffic to a network port or interface serving a plurality of IGMP hosts such as set top boxes.
2. Description of the Prior Art
Streaming real-time multimedia content can now be provided over the Internet. Streaming applications may include IP telephony, broadcasting multimedia content and multi-party conferences, collaborations and multi-player games. Many of the existing streaming systems do not scale to large audiences, particularly for a transmission at high bit rates. They also do not provide user flexibility, and are restricted to a utilization of either conferencing or broadcast modes.
Early attempts to provide streaming applications to clients over the Internet have been implement using a unicast scheme. An exemplary system illustrating the system which utilizes the conventional unicast architecture is shown in FIG. 1. Referring to FIG. 1, a source (e.g., the audio and/or video content provider) is connected to a first router R1, which in turn is connected to second and third routers R2, R3. The second router R2 is connected to fourth and fifth routers R4, R5, while the third router R3 is connected to sixth and seventh routers R6, R7. The fourth router R4 is connected to two clients C0, C1; the fifth router R5 is connected to three clients C2, C3, C4; the sixth client R6 is connected to two clients C5, C6; and the seventh client R7 is connected to another three clients C7, C8, C9. The clients C0-C9 may be computers requesting the particular multimedia content (e.g., an audio and/or video program).
In operation, if each of the clients C0-C9 requests the same multimedia content, each of those requests is routed via their respective routers to the source. For example, the clients C0, C1 each send a request to the fourth router R4 which routes a request for two streams for the particular multimedia content, i.e., one stream for each of its requesting clients C0, C1 to router R2. At the same time, the fifth, sixth and seventh routers R5, R6, R7 may receive the requests for the same multimedia content from its respective clients C2-C9, and these routers R5, R6, R7 route their streams, respectively, for such multimedia content upstream. The requests for two and three identical multimedia streams (i.e., a total of five streams) are sent to the second router R2 from the fourth and fifth routers R4, R5, respectively. The requests for the same three and two multimedia streams (i.e., also a total of five streams) are sent to the third router R3 from the sixth and seventh routers R6, R7, respectively. The second and third routers R2, R3 each route the request for five multimedia streams to the first router R1, which routes a request for 10 multimedia streams (i.e., 5 for the second router R2 and 5 for the third router R3) to the source.
Thus, the source receives a request for 10 multimedia streams, and then transmits 10 multimedia streams to the first router R1, which then routes the requested 5 identical multimedia streams to the second router R2, and the same 5 multimedia streams to the third router R3. The second router R2 then routes two of these multimedia streams to the fourth router R4, and three to the fifth router R5. The fourth router R4 routes 1 stream to the client C0 and the other stream to the client C1. The fifth router R5 routes one of its received streams to the respective client, C2, C3, C4. Similar routing of the multimedia streams occurs for the third router R3 (and thus for the sixth and seventh routers, (R6, R7).
By utilizing the unicast scheme described above and shown in FIG. 1, there may be multiple copies of the same multimedia content being transmitted from the source down to the clients. Such transmission of multiple streams may cause a bottleneck in the network, waste network bandwidth, and could prevent the clients from receiving the multimedia content in an expeditious manner.
FIG. 2 shows an arrangement utilizing a conventional multicast communications scheme which addresses at least some of the above-mentioned drawbacks. For the sake of simplicity, the multicast arrangement in FIG. 2 is substantially similar to that shown in FIG. 1. Using the multicasting communications scheme illustrated in FIG. 2, if each of the clients C0-C9 requests the same multimedia content, the routers keep track of the particular client which made the request, and only sends one request for the multimedia stream upstream to the next router in the chain (or to the source 100). For example, the clients C0, C1 may send such request (e.g., a join request) to the fourth router R4, which stores an indication (e.g., a state) therein that at least one of clients C0, C1 sent the particular request. At the same time, the fifth, sixth and seventh routers R5, R6, R7 may receive the requests for the same multimedia content from its respective clients C2-C9, and each these routers R5, R6, R7 stores an indication therein regarding that at least one of their respective clients sent the request for multimedia stream. If the fourth router R4 (or the fifth router R5) already routed the multimedia streams to one of its clients (on the same subnet as the requesting client), it routes the multimedia streams to such requesting client. Otherwise each of the fourth and fifth routers R4, R5 sends a request to receive the multimedia stream that was requested by their respective clients C0-C4 to the second router R2. The second router R2 stores an indication that at least one of the fourth and fifth routers R4, R5 made the request. Each of the sixth and seventh routers R6, R7 also may send a request for the multimedia stream (i.e., that was requested by their respective clients C5-C9) to the third router R3. The third router R3 stores an indication which is similar to the one stored in the second router R2. Then, the second and third routers R2, R3 each send the request for the same multimedia stream to the first router R1, which stores an indication regarding which of the routers R2, R3 made the request. Since the first router R1 is directly connected (or connected in the same subnet) to the source, the first router R1 always receives the multimedia stream from the source.
In this manner, the first router R1 receives the request, duplicates the received multimedia stream and transmits 1 copy thereof to each of the second and third routers R2, R3 (if both made the request). The second router R2 then duplicates the received multimedia stream provided in the multicast channels 500, and sends one copy of the stream to each of the fourth and fifth router R4, R5. The fourth router R4, in turn, provides one copy of the received multimedia stream provided in the multicast channels 500 to the client C0 and the other copy to the client C1 (if both made the request).
If two requesting clients are on the same subnet, it is possible for only 1 copy to be broadcast on the subnet for reception by any requesting client. The fifth router R5 duplicates the received multimedia stream, and sends one copy of the received multimedia stream provided by the multicast channels 500 to each of the respective client C2, C3, C4 (if each of theses clients made the request). A similar transmission of the multimedia streams occurs for the third router R3 (and thus for the sixth and seventh routers R6, R7).
With this multicast scheme, the source needs to only transmit one multimedia stream to the requesting router, which in turn duplicates the multimedia stream (if necessary) and transmits a single stream downstream to the routers and/or the clients requesting such stream. Indeed, each router (as well as the source 100) does not need to transmit more than one multimedia stream to the downstream routers. As such, the bandwidth of the system is utilized more efficiently.
In addition, by using the multicast scheme described above, it is also possible to avoid a transmission of a request for the multimedia stream (that has already been provided to other clients by a particular router) all the way up to the source. For example, another client C10 maybe connected to the fourth router R5, and this new client C10 may request the multimedia stream from the fourth router R4 that has already been requested (and is provided to) the client C1. When the fourth router R4 receives this request from the new client C10, it checks whether the requested multimedia stream has already been provided to it. If not, this request is then passed to the second router R2. If the fourth router R4 determines that the requested multimedia stream is already provided by it to at least one of its clients (is in the present exemplary case to the client C1), the fourth router sends a copy of the requested multimedia stream to the new client C10 without sending additional requests for this multimedia stream to the second router R2, and ultimately to the server.
There are three versions of the Internet Group Management Protocol. The first is found in Appendix 1 of RFC 1112. Version two is found in RFC 2236. Version 3 of the IGMP protocol is found in RFC 3376. Copies of version 1, version 2 and version 3 of the IGMP protocol are found attached hereto as Appendices A, B and C respectively.
A digital subscriber line access multiplexer (DSLAM) allows telephone lines to make faster connections to the Internet. It is a network device, located near the customer's location, that connects multiple customer digital subscriber lines (DSL's) to a high-speed Internet backbone using multiplexing techniques. By locating DSLAM's at locations remote to the telephone company central office, telephone companies are now providing DSL service to consumers who previously did not live close enough for the technology to work. Balanced pair cable has higher attenuation at higher frequencies, hence the longer the wire between the DSLAM and the subscriber, the slower the maximum possible data rate.